/**
 * Created by Administrator on 2016/6/27.
 */

var mongodb = require('./db')


//写对象的时候，考虑有哪些数据
function User(user){
    //对象，先写属性，即保存传过来的用户信息
    this.name = user.name
    this.password = user.password
    this.email = user.email
}
//注册信息的保存
User.prototype.save = function(callback){
    var user = {
        name: this.name,
        password:this.password,
        email:this.email
    }
    //打开数据库
    mongodb.open(function(err, db){
        if(err){
            //res.flash('error', '数据库连接失败')
            return callback(err)
        }
        //打开数据库中的users集合
        db.collection('users', function(err, collection){
            if(err){
                mongodb.close()
                return callback(err)
            }
            //把数据插入集合
            collection.insert(user, function(err, data){
                //无论正确与否，都要关闭数据库
                mongodb.close()
                if(err){
                    return callback(err)
                }else{
                    callback(null, data[0])
                }
            })
        })
    })
}

//读取用户信息
User.get = function(name,callback){
    mongodb.open(function(err, db){
        if(err){
            return callback(err)
        }
        //db.collection 是用来读取users的集合的
        //collection是users集合当汇总的所有数据
        db.collection('users', function(err, collection){
            if(err){
                mongodb.close()
                return callback(err)
            }
            //获取具体的某一个注册信息，将这个注册信息返回给回调给函数
            collection.findOne({name:name}, function(err, user){
                mongodb.close() //关闭数据库
                if(user){
                    return callback(null, user)  //成功！ 返回查询的用户信息
                }
                callback(err) //失败！ 返回 err 信息

            })
        })
    })
}


//封装模块，方便调用
module.exports = User